
/* 时间戳转换为本地格式 */
export const toLocalTime = (date) => {
  return date.toLocaleString().replace(/\//g, '-').replace(/(.*-)(\d)(-.*)/, '$10$2$3').replace(/(.*-)(\d)( .*)/, '$10$2$3')
}

/**
 * 生成指定长的的字符串
 * @param len[number] 生成的字符串长度
 * @return string
 * */
export function stringRandom(len) {
  let a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmzopqrstuvwxyz0123456789'
  let s = ''
  for (let i = 0; i < len; i++) {
    s += a.charAt(Math.floor(Math.random() * a.length))
  }
  return s
}

// vue-router 源码中解析 href 的方法
export function parseQuery(query) {
  const res = {}

  query = query.trim().replace(/^(\?|#|&)/, '')

  if (!query) {
    return res
  }

  query.split('&').forEach(param => {
    const parts = param.replace(/\+/g, ' ').split('=')
    const key = decodeURIComponent(parts.shift())
    const val = parts.length > 0 ? decodeURIComponent(parts.join('=')) : null

    if (res[key] === undefined) {
      res[key] = val
    } else if (Array.isArray(res[key])) {
      res[key].push(val)
    } else {
      res[key] = [res[key], val]
    }
  })

  return res
}

/**
 * href参数序列化
 * @param url[String | ''] 路径
 * @param query[Object] href 所需要携带的数据 json 格式
 * @return String
 * */
export function hsQueryString(url, query) {
  url = url || ''

  if (typeof query === 'object') {
    let s = /\?/.test(url) ? '&' : '?'

    for (let key in query) {
      s += key + '=' + query[key] + '&'
    }
    return url + s.replace(/&$/, '')
  } else {
    return url + ''
  }
}


/**
 * 下载文件
 * @param href[string] 下载文件的路径
 * @return Void
 * */
export function downloadFile(href) {
  const link = document.createElement('a');
  link.href = href;
  link.setAttribute('download', '关键词列表.xls'); // 需要指定文件格式。
  document.body.appendChild(link);
  link.click(); //点击事件

  setTimeout(() => {
    document.body.removeChild(link)
  }, 1000)
}